package com.walterweimod.auxiliary_attributes.mobeffect;

import com.walterweimod.auxiliary_attributes.Auxiliary_attributes;
import net.minecraft.world.effect.MobEffect;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

public class ModMobEffects {
    public static final DeferredRegister<MobEffect> MOB_EFFECT_DEFERRED_REGISTER = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, Auxiliary_attributes.MODID);

    public static final RegistryObject<MobEffect> KINGS_BLESSING = MOB_EFFECT_DEFERRED_REGISTER.register("kings_blessing", KingsBlessing::new);

    public static final RegistryObject<MobEffect> BLOOD_SHIELD = MOB_EFFECT_DEFERRED_REGISTER.register("blood_shield", BloodShield::new);

    public static final RegistryObject<MobEffect> ARMOR_BOOST = MOB_EFFECT_DEFERRED_REGISTER.register("armor_boost", ArmorBoost::new);

    public static final RegistryObject<MobEffect> ARMOR_TOUGHNESS_BOOST = MOB_EFFECT_DEFERRED_REGISTER.register("armor_toughness_boost", ArmorToughnessBoost::new);

    public static final RegistryObject<MobEffect> STABLE = MOB_EFFECT_DEFERRED_REGISTER.register("stable", Stable::new);

    public static final RegistryObject<MobEffect> IMPACT = MOB_EFFECT_DEFERRED_REGISTER.register("impact", Impact::new);

    public static final RegistryObject<MobEffect> TENACITY = MOB_EFFECT_DEFERRED_REGISTER.register("tenacity", Tenacity::new);

    public static final RegistryObject<MobEffect> RESILIENCE = MOB_EFFECT_DEFERRED_REGISTER.register("resilience", Resilience::new);

    public static final RegistryObject<MobEffect> ENDURANCE = MOB_EFFECT_DEFERRED_REGISTER.register("endurance", Endurance::new);

    public static final RegistryObject<MobEffect> FIREMAN = MOB_EFFECT_DEFERRED_REGISTER.register("fireman", Fireman::new);

    public static final RegistryObject<MobEffect> RAGE = MOB_EFFECT_DEFERRED_REGISTER.register(Rage.DESCRIPTION, Rage::new);

    public static final RegistryObject<MobEffect> RAGE2 = MOB_EFFECT_DEFERRED_REGISTER.register(Rage2.DESCRIPTION, Rage2::new);

    public static final RegistryObject<MobEffect> RAGE_DEPTH = MOB_EFFECT_DEFERRED_REGISTER.register(RageDepth.DESCRIPTION, RageDepth::new);

    public static final RegistryObject<MobEffect> BLOOD_FEAST = MOB_EFFECT_DEFERRED_REGISTER.register(BloodFeast.DESCRIPTION, BloodFeast::new);

    public static void registerMobEffects(IEventBus eventBus){
        MOB_EFFECT_DEFERRED_REGISTER.register(eventBus);
    }
}
